svm: Fix stupid typo in svm_set_interrupt_shadow().
authorKeir Fraser <keir.fraser@citrix.com>
Mon, 25 Feb 2008 09:07:24 +0000 (09:07 +0000)
committerKeir Fraser <keir.fraser@citrix.com>
Mon, 25 Feb 2008 09:07:24 +0000 (09:07 +0000)
Signed-off-by: Christoph Egger <christoph.egger@amd.com>
svm: Also return STI *and* MOV-SS blocking from
svm_get_interrupt_shadow().
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
xen/arch/x86/hvm/svm/svm.c

index f6254e194961732b19e7136e0a62779794286b82..ba934c1399aec84bda8ad7bd5c1eb856ee8de0c5 100644 (file)
@@ -369,14 +369,15 @@ static void svm_fpu_leave(struct vcpu *v)
 static unsigned int svm_get_interrupt_shadow(struct vcpu *v)
 {
     struct vmcb_struct *vmcb = v->arch.hvm_svm.vmcb;
-    return (vmcb->interrupt_shadow ? HVM_INTR_SHADOW_MOV_SS : 0);
+    return (vmcb->interrupt_shadow ?
+            (HVM_INTR_SHADOW_MOV_SS|HVM_INTR_SHADOW_STI) : 0);
 }
 
 static void svm_set_interrupt_shadow(struct vcpu *v, unsigned int intr_shadow)
 {
     struct vmcb_struct *vmcb = v->arch.hvm_svm.vmcb;
-    vmcb->interrupt_shadow = !!(vmcb->interrupt_shadow &
-                                (HVM_INTR_SHADOW_MOV_SS|HVM_INTR_SHADOW_STI));
+    vmcb->interrupt_shadow =
+        !!(intr_shadow & (HVM_INTR_SHADOW_MOV_SS|HVM_INTR_SHADOW_STI));
 }
 
 static int svm_guest_x86_mode(struct vcpu *v)